Foundations Of Deep Learning